1. Technical Field
The present invention relates in general to an improved data processing system and in particular to an improved method and system for generating high resolution graphics in a data processing system. Still more particularly, the present invention relates to a method and system for supporting multiple display adapters which may be installed within a data processing system.
2. Description of the Related Art
Computer display systems have become increasingly complex in recent years. This is particularly true with respect to the so-called "personal" computer. Since its initial introduction the personal computer has gradually enhanced the video graphic capability of such systems to permit personal computers to meet more sophisticated demands in the display area.
Initially, personal computers often utilized Color Graphics Adapters or CGA capable of a resolution of 640.times.200 pixels and up to four colors. These adapters were quickly supplanted by so-called "Enhanced Graphics Adapters" (EGA) capable of a resolution of 640.times.350 pixels while displaying up to sixteen colors, out of a possible list of sixty-four colors.
In recognition of a demand for improved video graphic capability within personal computers International Business Machines Corporation introduced the PS/2 personal computer in 1987 which adopted a new graphic standard. This standard is the Video Graphics Array (VGA) which was capable of a resolution of 640.times.480 pixels, while displaying up to 256 colors simultaneously out of a color palette of over 250,000 colors. Unlike the previous Enhanced Graphics Adapter (EGA), the new standard is able to both read and write hardware registers and was quickly adopted as the industry standard, providing a substantial improvement in the video display art. Numerous manufacturers have provided so-called "video adapter" boards which were capable of reproducing the Video Graphics Array (VGA) mode within existing computers.
More recently, this Video Graphics Array (VGA) mode has been surpassed by the so-called "Super Video Graphics Array" (SVGA) mode is capable of providing a resolution of 1,024.times.768 pixels and 256 colors. Numerous manufacturers now provide video adapters capable of supporting this highly enhanced video mode. For example, the Tseng Laboratories ET4000; ATI Technologies ATI28800; Headland Technology HT209; Trident Microsystems TVGA8900; Western Digital Imaging WD90C11; Cirrus Logic CL-GD5422; and, the IBM VGA256C.
In order to utilize one of these SVGA graphics adapters it is necessary to provide an appropriate device driver which is capable of determining and setting the necessary registers within the data processing system which are required to implement these resolutions. This is typically accomplished in the prior art by statically coding the necessary information into the device driver; however, this static approach is inadequate for many SVGA adapter types. Existing VGA adapters generally do not provide an extensive implementation of extended registers and there is also no mechanism for locking and unlocking extended registers, in the manner necessary to implement the SVGA resolution. Additionally, existing VGA adapters do not provide the implementation necessary for bank switching, which permits access to one megabyte of video memory or greater.
Thus, each of the aforementioned SVGA adapters requires a unique device driver capable of determining or setting the appropriate registers and locking and unlocking those registers. Additionally, data processing systems which utilize such SVGA adapters often also utilize standard VGA hardware and thus must necessarily switch back and forth between VGA operation and SVGA operation. This is particularly true in a multitasking data processing system which is capable of executing multiple applications in a plurality of concurrent sessions, wherein a single session is operated in foreground while the remaining sessions are operated in background. In such situations it is necessary to be able to save and restore the status of different sessions, each of which may be executing in a different resolution, in a single data processing system. Each of the aforementioned SVGA adapters provides a device driver capable of accomplishing several of these tasks; however, the utilization of each such SVGA adapter requires the installation of a unique device driver for that adapter.
It should thus be apparent that a need exists for a device driver which is capable of supporting a plurality of different SVGA adapters and which is capable of supporting a selection of different video modes for utilization in different sessions within a multitasking data processing system.